SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for expert
-- ----------------------------
DROP TABLE IF EXISTS `expert`;
CREATE TABLE `expert` (
  `expert_id` varchar(36) NOT NULL COMMENT '专家ID',
  `name` varchar(64) NOT NULL COMMENT '姓名',
  `unit` varchar(128) DEFAULT NULL COMMENT '单位',
  `detail_unit` varchar(256) DEFAULT NULL COMMENT '详细单位',
  `title` varchar(64) DEFAULT NULL COMMENT '职称（教授、副教授、讲师）',
  `level` varchar(64) DEFAULT NULL COMMENT '职级（院士、全国知名专家，高级专业技术职称专家，其他专家）',
  `field` varchar(128) DEFAULT NULL COMMENT '领域',
  `score` decimal(5,2) DEFAULT NULL COMMENT '评分',
  `id_card` varchar(18) DEFAULT NULL COMMENT '身份证号码',
  `bank_account` varchar(32) DEFAULT NULL COMMENT '银行卡账号',
  `bank_name` varchar(128) DEFAULT NULL COMMENT '开户行',
  `phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
  `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除（0-未删除，1-已删除）',
  `create_user_id` varchar(36) DEFAULT NULL COMMENT '创建用户ID',
  `create_user_name` varchar(64) DEFAULT NULL COMMENT '创建用户名称',
  `create_time` bigint(20) DEFAULT NULL COMMENT '创建时间（时间戳）',
  `update_user_id` varchar(36) DEFAULT NULL COMMENT '修改用户ID',
  `update_user_name` varchar(64) DEFAULT NULL COMMENT '修改用户名称',
  `update_time` bigint(20) DEFAULT NULL COMMENT '修改时间（时间戳）',
  PRIMARY KEY (`expert_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='专家表';

-- ----------------------------
-- Records of expert
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Table structure for expert_fee_payment
-- ----------------------------
DROP TABLE IF EXISTS `expert_fee_payment`;
CREATE TABLE `expert_fee_payment` (
  `payment_id` varchar(36) NOT NULL COMMENT '费用单ID',
  `meeting_id` varchar(36) NOT NULL COMMENT '会议ID',
  `meeting_time` bigint(20) NOT NULL COMMENT '会议时间',
  `prepared_by` varchar(128) NOT NULL COMMENT '填制单位',
  `pre_tax_amount_cn` varchar(128) NOT NULL COMMENT '金额合计税前（大写）',
  `pre_tax_amount` decimal(12,2) NOT NULL COMMENT '金额合计税前（小写）',
  `post_tax_amount_cn` varchar(128) NOT NULL COMMENT '金额合计税后（大写）',
  `post_tax_amount` decimal(12,2) NOT NULL COMMENT '金额合计税后（小写）',
  `meeting_location` varchar(128) NOT NULL COMMENT '会议地点',
  `meeting_topic` varchar(256) NOT NULL COMMENT '会议主题',
  `expert_count` int(11) NOT NULL COMMENT '专家人数',
  `payment_status` int(2) NOT NULL COMMENT '费用状态（0-未支付，1-已支付）',
  `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除（0-未删除，1-已删除）',
  `create_user_id` varchar(36) DEFAULT NULL COMMENT '创建用户ID',
  `create_user_name` varchar(64) DEFAULT NULL COMMENT '创建用户名称',
  `create_time` bigint(20) DEFAULT NULL COMMENT '创建时间（时间戳）',
  `update_user_id` varchar(36) DEFAULT NULL COMMENT '修改用户ID',
  `update_user_name` varchar(64) DEFAULT NULL COMMENT '修改用户名称',
  `update_time` bigint(20) DEFAULT NULL COMMENT '修改时间（时间戳）',
  PRIMARY KEY (`payment_id`),
  KEY `idx_meeting_id` (`meeting_id`),
  CONSTRAINT `fk_expert_fee_payment_meeting` FOREIGN KEY (`meeting_id`) REFERENCES `meeting` (`meeting_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='专家评审费发放单表';

-- ----------------------------
-- Records of expert_fee_payment
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Table structure for expert_fee_payment_detail
-- ----------------------------
DROP TABLE IF EXISTS `expert_fee_payment_detail`;
CREATE TABLE `expert_fee_payment_detail` (
  `detail_id` varchar(36) NOT NULL COMMENT '费用单对应专家ID',
  `payment_id` varchar(36) NOT NULL COMMENT '专家评审费发放单ID',
  `meeting_id` varchar(36) NOT NULL COMMENT '会议ID',
  `name` varchar(64) NOT NULL COMMENT '姓名',
  `unit` varchar(128) NOT NULL COMMENT '单位',
  `title` varchar(64) NOT NULL COMMENT '职称（职级）',
  `id_card` varchar(18) NOT NULL COMMENT '身份证号码',
  `bank_account` varchar(32) NOT NULL COMMENT '银行卡账号',
  `bank_name` varchar(128) NOT NULL COMMENT '开户行',
  `pre_tax_amount` decimal(12,2) NOT NULL COMMENT '金额（税前）',
  `post_tax_amount` decimal(12,2) NOT NULL COMMENT '金额（税后）',
  `phone` varchar(20) NOT NULL COMMENT '联系电话',
  `payment_status` int(2) NOT NULL COMMENT '费用状态（0-未支付，1-已支付）',
  `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除（0-未删除，1-已删除）',
  `create_user_id` varchar(36) DEFAULT NULL COMMENT '创建用户ID',
  `create_user_name` varchar(64) DEFAULT NULL COMMENT '创建用户名称',
  `create_time` bigint(20) DEFAULT NULL COMMENT '创建时间（时间戳）',
  `update_user_id` varchar(36) DEFAULT NULL COMMENT '修改用户ID',
  `update_user_name` varchar(64) DEFAULT NULL COMMENT '修改用户名称',
  `update_time` bigint(20) DEFAULT NULL COMMENT '修改时间（时间戳）',
  PRIMARY KEY (`detail_id`),
  KEY `idx_payment_id` (`payment_id`),
  KEY `idx_meeting_id` (`meeting_id`),
  CONSTRAINT `fk_expert_fee_payment_detail_meeting` FOREIGN KEY (`meeting_id`) REFERENCES `meeting` (`meeting_id`),
  CONSTRAINT `fk_expert_fee_payment_detail_payment` FOREIGN KEY (`payment_id`) REFERENCES `expert_fee_payment` (`payment_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='专家评审费发放单对应专家表';

-- ----------------------------
-- Records of expert_fee_payment_detail
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Table structure for expert_funding
-- ----------------------------
DROP TABLE IF EXISTS `expert_funding`;
CREATE TABLE `expert_funding` (
  `funding_id` varchar(36) NOT NULL COMMENT '经费ID',
  `funding_type` varchar(64) NOT NULL COMMENT '经费类型（科研经费、其他经费）',
  `expert_title` varchar(64) NOT NULL COMMENT '专家职称（院士、全国知名专家，高级专业技术职称专家，其他专家）',
  `min_amount` decimal(12,2) NOT NULL COMMENT '最低费用标准（税前）',
  `max_amount` decimal(12,2) NOT NULL COMMENT '最高费用标准（税前）',
  `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除（0-未删除，1-已删除）',
  `create_user_id` varchar(36) DEFAULT NULL COMMENT '创建用户ID',
  `create_user_name` varchar(64) DEFAULT NULL COMMENT '创建用户名称',
  `create_time` bigint(20) DEFAULT NULL COMMENT '创建时间（时间戳）',
  `update_user_id` varchar(36) DEFAULT NULL COMMENT '修改用户ID',
  `update_user_name` varchar(64) DEFAULT NULL COMMENT '修改用户名称',
  `update_time` bigint(20) DEFAULT NULL COMMENT '修改时间（时间戳）',
  PRIMARY KEY (`funding_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='专家经费表';

-- ----------------------------
-- Records of expert_funding
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Table structure for expert_library
-- ----------------------------
DROP TABLE IF EXISTS `expert_library`;
CREATE TABLE `expert_library` (
  `expert_library_id` varchar(36) NOT NULL COMMENT '专家库ID',
  `expert_library_name` varchar(128) NOT NULL COMMENT '专家库名称',
  `admin_limit` int(11) NOT NULL COMMENT '管理员数量上限',
  `description` varchar(512) DEFAULT NULL COMMENT '专家库描述',
  `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除（0-未删除，1-已删除）',
  `create_user_id` varchar(36) DEFAULT NULL COMMENT '创建用户ID',
  `create_user_name` varchar(64) DEFAULT NULL COMMENT '创建用户名称',
  `create_time` bigint(20) DEFAULT NULL COMMENT '创建时间（时间戳）',
  `update_user_id` varchar(36) DEFAULT NULL COMMENT '修改用户ID',
  `update_user_name` varchar(64) DEFAULT NULL COMMENT '修改用户名称',
  `update_time` bigint(20) DEFAULT NULL COMMENT '修改时间（时间戳）',
  PRIMARY KEY (`expert_library_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='专家库表';

-- ----------------------------
-- Records of expert_library
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Table structure for expert_library_permission
-- ----------------------------
DROP TABLE IF EXISTS `expert_library_permission`;
CREATE TABLE `expert_library_permission` (
  `expert_library_permission_id` varchar(36) NOT NULL COMMENT '专家库管理权限ID',
  `expert_library_id` varchar(36) NOT NULL COMMENT '专家库ID',
  `user_id` varchar(36) NOT NULL COMMENT '用户ID',
  `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除（0-未删除，1-已删除）',
  `create_user_id` varchar(36) DEFAULT NULL COMMENT '创建用户ID',
  `create_user_name` varchar(64) DEFAULT NULL COMMENT '创建用户名称',
  `create_time` bigint(20) DEFAULT NULL COMMENT '创建时间（时间戳）',
  `update_user_id` varchar(36) DEFAULT NULL COMMENT '修改用户ID',
  `update_user_name` varchar(64) DEFAULT NULL COMMENT '修改用户名称',
  `update_time` bigint(20) DEFAULT NULL COMMENT '修改时间（时间戳）',
  PRIMARY KEY (`expert_library_permission_id`),
  KEY `idx_expert_library_id` (`expert_library_id`),
  KEY `idx_user_id` (`user_id`),
  CONSTRAINT `fk_expert_library_permission_expert_library` FOREIGN KEY (`expert_library_id`) REFERENCES `expert_library` (`expert_library_id`),
  CONSTRAINT `fk_expert_library_permission_user` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='专家库管理权限表';

-- ----------------------------
-- Records of expert_library_permission
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Table structure for meeting
-- ----------------------------
DROP TABLE IF EXISTS `meeting`;
CREATE TABLE `meeting` (
  `meeting_id` varchar(36) NOT NULL COMMENT '会议ID',
  `meeting_topic` varchar(256) NOT NULL COMMENT '会议主题',
  `meeting_location` varchar(128) DEFAULT NULL COMMENT '会议地点',
  `start_time` bigint(20) NOT NULL COMMENT '会议开始时间（时间戳）',
  `end_time` bigint(20) NOT NULL COMMENT '会议结束时间（时间戳）',
  `duration` decimal(3,1) DEFAULT NULL COMMENT '会期管理（单位为天【0.5、1、2、3、4】）',
  `meeting_type` varchar(64) DEFAULT NULL COMMENT '会议类型',
  `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除（0-未删除，1-已删除）',
  `create_user_id` varchar(36) DEFAULT NULL COMMENT '创建用户ID',
  `create_user_name` varchar(64) DEFAULT NULL COMMENT '创建用户名称',
  `create_time` bigint(20) DEFAULT NULL COMMENT '创建时间（时间戳）',
  `update_user_id` varchar(36) DEFAULT NULL COMMENT '修改用户ID',
  `update_user_name` varchar(64) DEFAULT NULL COMMENT '修改用户名称',
  `update_time` bigint(20) DEFAULT NULL COMMENT '修改时间（时间戳）',
  PRIMARY KEY (`meeting_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会议表';

-- ----------------------------
-- Records of meeting
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Table structure for meeting_expert_invitation
-- ----------------------------
DROP TABLE IF EXISTS `meeting_expert_invitation`;
CREATE TABLE `meeting_expert_invitation` (
  `invitation_id` varchar(36) NOT NULL COMMENT '关联ID',
  `meeting_id` varchar(36) NOT NULL COMMENT '会议ID',
  `expert_id` varchar(36) NOT NULL COMMENT '专家ID',
  `status` int(2) NOT NULL COMMENT '状态（0-未确认，1-确认出席，2-不能出席）',
  `reason` varchar(512) DEFAULT NULL COMMENT '不能出席的原因',
  `score` decimal(5,2) DEFAULT NULL COMMENT '评分',
  `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除（0-未删除，1-已删除）',
  `create_user_id` varchar(36) DEFAULT NULL COMMENT '创建用户ID',
  `create_user_name` varchar(64) DEFAULT NULL COMMENT '创建用户名称',
  `create_time` bigint(20) DEFAULT NULL COMMENT '创建时间（时间戳）',
  `update_user_id` varchar(36) DEFAULT NULL COMMENT '修改用户ID',
  `update_user_name` varchar(64) DEFAULT NULL COMMENT '修改用户名称',
  `update_time` bigint(20) DEFAULT NULL COMMENT '修改时间（时间戳）',
  PRIMARY KEY (`invitation_id`),
  KEY `idx_meeting_id` (`meeting_id`),
  KEY `idx_expert_id` (`expert_id`),
  CONSTRAINT `fk_meeting_expert_invitation_expert` FOREIGN KEY (`expert_id`) REFERENCES `expert` (`expert_id`),
  CONSTRAINT `fk_meeting_expert_invitation_meeting` FOREIGN KEY (`meeting_id`) REFERENCES `meeting` (`meeting_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会议专家邀约表';

-- ----------------------------
-- Records of meeting_expert_invitation
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Table structure for operation_log
-- ----------------------------
DROP TABLE IF EXISTS `operation_log`;
CREATE TABLE `operation_log` (
  `log_id` varchar(36) NOT NULL COMMENT '日志ID',
  `operation_user_id` varchar(36) NOT NULL COMMENT '操作用户ID',
  `operation_user_name` varchar(64) NOT NULL COMMENT '操作用户名称',
  `operation_type` varchar(64) NOT NULL COMMENT '操作类型',
  `operation_content` text COMMENT '操作内容',
  `operation_time` bigint(20) NOT NULL COMMENT '操作时间（时间戳）',
  `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除（0-未删除，1-已删除）',
  `create_user_id` varchar(36) DEFAULT NULL COMMENT '创建用户ID',
  `create_user_name` varchar(64) DEFAULT NULL COMMENT '创建用户名称',
  `create_time` bigint(20) DEFAULT NULL COMMENT '创建时间（时间戳）',
  `update_user_id` varchar(36) DEFAULT NULL COMMENT '修改用户ID',
  `update_user_name` varchar(64) DEFAULT NULL COMMENT '修改用户名称',
  `update_time` bigint(20) DEFAULT NULL COMMENT '修改时间（时间戳）',
  PRIMARY KEY (`log_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='操作日志表';

-- ----------------------------
-- Records of operation_log
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Table structure for tax_rule
-- ----------------------------
DROP TABLE IF EXISTS `tax_rule`;
CREATE TABLE `tax_rule` (
  `tax_rule_id` varchar(36) NOT NULL COMMENT '计税规则ID',
  `min_amount` decimal(12,2) NOT NULL COMMENT '计税金额区间下限',
  `max_amount` decimal(12,2) NOT NULL COMMENT '计税金额区间上限',
  `tax_rate` decimal(5,2) NOT NULL COMMENT '扣税比例',
  `extra_deduction` decimal(12,2) DEFAULT '0.00' COMMENT '额外扣除金额（默认0）',
  `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除（0-未删除，1-已删除）',
  `create_user_id` varchar(36) DEFAULT NULL COMMENT '创建用户ID',
  `create_user_name` varchar(64) DEFAULT NULL COMMENT '创建用户名称',
  `create_time` bigint(20) DEFAULT NULL COMMENT '创建时间（时间戳）',
  `update_user_id` varchar(36) DEFAULT NULL COMMENT '修改用户ID',
  `update_user_name` varchar(64) DEFAULT NULL COMMENT '修改用户名称',
  `update_time` bigint(20) DEFAULT NULL COMMENT '修改时间（时间戳）',
  PRIMARY KEY (`tax_rule_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='计税规则表';

-- ----------------------------
-- Records of tax_rule
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `user_id` varchar(36) NOT NULL COMMENT '用户ID',
  `username` varchar(64) NOT NULL COMMENT '用户名',
  `password` varchar(128) NOT NULL COMMENT '密码',
  `user_type` int(2) NOT NULL COMMENT '用户类型（0-普通用户，1-管理员，2-超级管理员）',
  `phone` varchar(20) DEFAULT NULL COMMENT '手机号',
  `email` varchar(64) DEFAULT NULL COMMENT '邮箱',
  `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除（0-未删除，1-已删除）',
  `create_user_id` varchar(36) DEFAULT NULL COMMENT '创建用户ID',
  `create_user_name` varchar(64) DEFAULT NULL COMMENT '创建用户名称',
  `create_time` bigint(20) DEFAULT NULL COMMENT '创建时间（时间戳）',
  `update_user_id` varchar(36) DEFAULT NULL COMMENT '修改用户ID',
  `update_user_name` varchar(64) DEFAULT NULL COMMENT '修改用户名称',
  `update_time` bigint(20) DEFAULT NULL COMMENT '修改时间（时间戳）',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';

-- ----------------------------
-- Records of user
-- ----------------------------
BEGIN;
COMMIT;

CREATE TABLE `dict_type` (
  `dict_type_id` varchar(36) NOT NULL COMMENT '字典类型ID',
  `dict_type_name` varchar(128) NOT NULL COMMENT '字典类型名称',
  `dict_type_code` varchar(64) NOT NULL COMMENT '字典类型编码',
  `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除（0-未删除，1-已删除）',
  `create_user_id` varchar(36) DEFAULT NULL COMMENT '创建用户ID',
  `create_user_name` varchar(64) DEFAULT NULL COMMENT '创建用户名称',
  `create_time` bigint DEFAULT NULL COMMENT '创建时间（时间戳）',
  `update_user_id` varchar(36) DEFAULT NULL COMMENT '修改用户ID',
  `update_user_name` varchar(64) DEFAULT NULL COMMENT '修改用户名称',
  `update_time` bigint DEFAULT NULL COMMENT '修改时间（时间戳）',
  `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`dict_type_id`),
  UNIQUE KEY `uk_dict_type_code` (`dict_type_code`) COMMENT '字典类型编码唯一约束'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典类型表';


CREATE TABLE `dict_data` (
  `dict_data_id` varchar(36) NOT NULL COMMENT '字典数据ID',
  `dict_type_id` varchar(36) NOT NULL COMMENT '字典类型ID',
  `dict_data_name` varchar(128) NOT NULL COMMENT '字典数据名称',
  `dict_data_code` varchar(64) NOT NULL COMMENT '字典数据编码',
  `dict_data_value` varchar(128) NOT NULL COMMENT '字典数据值',
  `sort` int(11) DEFAULT '0' COMMENT '排序',
  `is_deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除（0-未删除，1-已删除）',
  `create_user_id` varchar(36) DEFAULT NULL COMMENT '创建用户ID',
  `create_user_name` varchar(64) DEFAULT NULL COMMENT '创建用户名称',
  `create_time` bigint DEFAULT NULL COMMENT '创建时间（时间戳）',
  `update_user_id` varchar(36) DEFAULT NULL COMMENT '修改用户ID',
  `update_user_name` varchar(64) DEFAULT NULL COMMENT '修改用户名称',
  `update_time` bigint DEFAULT NULL COMMENT '修改时间（时间戳）',
  `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  PRIMARY KEY (`dict_data_id`),
  KEY `idx_dict_type_id` (`dict_type_id`),
  CONSTRAINT `fk_dict_data_dict_type` FOREIGN KEY (`dict_type_id`) REFERENCES `dict_type` (`dict_type_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典数据表';